// TS的属性和方法封装
// 在语法层面上提供私有功能或属性的扩展
class UserE {
    public name:string = "tom";
    private _age:number = 23;

    public print():void{
        console.log("print:",this.name);
        this._show();
    }
    private _show():void{
        console.log("show:",this._age);
    }

    // 提供对属性拦截的特殊定义
    // 被监控的属性定义
    get age(){
        return this._age;
    }
    set age(nv){
        this._age = nv;
    }
}

var u3:UserE = new UserE();
console.log(u3.name);
// console.log(u3._age);
u3.print();
// u3._show();

console.log(u3.age);
u3.age = 33;